home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Common / LifeSystem.script < prev    next >
Text File  |  2001-09-13  |  2KB  |  93 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. class CLifeSystem
  11. {
  12.   string ExplosionId = "";
  13.  
  14.   void CLifeSystem(
  15.       float  _InitialHP,
  16.       string _ExplosionId
  17.     )
  18.   {
  19.     MaxHitpoints = _InitialHP;
  20.     NowHitpoints = _InitialHP;
  21.     ExplosionId  = _ExplosionId;
  22.   }
  23.  
  24.   void OnObjectLoaded()
  25.   {
  26.     HitpointsWasChanged(NowHitpoints);
  27.   }
  28.  
  29.   void OnToDamage(
  30.       float _Damage
  31.     )
  32.   {
  33.     NowHitpoints = NowHitpoints - _Damage;
  34.  
  35.     if (NowHitpoints <= 0.0)
  36.     {
  37.       NowHitpoints = 0.0;
  38.       DetonateObject(ExplosionId);
  39.     }
  40.  
  41.     HitpointsWasChanged(NowHitpoints);
  42.   }
  43.  
  44.   void HitpointsWasChanged(
  45.       float _NowHitpoints
  46.     )
  47.   {
  48.   }
  49.  
  50.   bool m_Isexploded = false;
  51.  
  52.   void DetonateObject(
  53.       string _ExplosionId
  54.     )
  55.   {
  56.     if (m_Isexploded)
  57.       return;
  58.     m_Isexploded = true;
  59.  
  60.     CreateExplosion(_ExplosionId, ObjectPosition);
  61.     DestroyComponent();
  62.   }
  63.  
  64.   void DestroyComponent()
  65.   {
  66.     // Destroy object (with little delay for effect?)
  67.     Core_PostEventTo(
  68.         SOID_MissionController,
  69.         "DestroyGameObject",
  70.         Core_GetIdentificator()
  71.       );
  72.   }
  73.  
  74.   void OnCollisionOccured(
  75.       float _fPower
  76.     )
  77.   {
  78.     OnToDamage(_fPower * 5.0);
  79.   }
  80. }
  81.  
  82. class CUnitLifeSystem
  83. {
  84.   void CUnitLifeSystem(
  85.       string _LifeSystem
  86.     )
  87.   {
  88.     CreateComponent("LifeSystem", "LifeSystem", _LifeSystem);
  89.     SetComponentPositionable("LifeSystem", "Mesh");
  90.   }
  91. }
  92.  
  93.